summaryrefslogtreecommitdiff
path: root/src-migrate/pages/api/product-variant/[id].tsx
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-12-15 17:15:32 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-12-15 17:15:32 +0700
commitc9366090153e8aba3a673b2b77cbc8acc24e59a5 (patch)
tree9bad672e511d5585bb4be5b4e3190aca7c4a16af /src-migrate/pages/api/product-variant/[id].tsx
parenta5321d82f4b5e8404f575f1d62e92d0322d78db9 (diff)
Update promotion program feature
Diffstat (limited to 'src-migrate/pages/api/product-variant/[id].tsx')
-rw-r--r--src-migrate/pages/api/product-variant/[id].tsx45
1 files changed, 45 insertions, 0 deletions
diff --git a/src-migrate/pages/api/product-variant/[id].tsx b/src-migrate/pages/api/product-variant/[id].tsx
new file mode 100644
index 00000000..ec95714d
--- /dev/null
+++ b/src-migrate/pages/api/product-variant/[id].tsx
@@ -0,0 +1,45 @@
+import { NextApiRequest, NextApiResponse } from "next";
+import { SolrResponse } from "~/common/types/solr";
+
+const SOLR_HOST = process.env.SOLR_HOST as string
+
+export default async function handler(req: NextApiRequest, res: NextApiResponse) {
+ const variantId = req.query.id as string
+ let price_tier = 'tier1'
+
+ let auth = req.cookies.auth ? JSON.parse(req.cookies.auth) : null
+ if (auth?.pricelist) price_tier = auth.pricelist
+
+ if (req.method === 'GET') {
+ const queryParams = new URLSearchParams({ q: `id:${variantId}` })
+ const response = await fetch(`${SOLR_HOST}/solr/variants/select?${queryParams.toString()}`)
+ const data: SolrResponse<any[]> = await response.json()
+
+ if (data.response.numFound === 0) {
+ res.status(404).json({ error: 'Variant not found' })
+ return
+ }
+
+ const variant = await extractVariant(data.response.docs[0], price_tier)
+
+ res.status(200).json({ data: variant })
+ }
+}
+
+const extractVariant = async (variant: any, price_tier: string) => {
+ const data: any = {}
+
+ data.id = parseInt(variant.id)
+ data.parent_id = variant.template_id_i
+ data.display_name = variant.display_name_s
+ data.image = variant.image_s
+ data.name = variant.name_s
+ data.default_code = variant.default_code_s
+ data.price = {
+ price: variant.price_v2_f,
+ discount_percentage: variant[`discount_${price_tier}_v2_f`] || 0,
+ price_discount: variant[`price_${price_tier}_v2_f`] || 0,
+ }
+
+ return data
+} \ No newline at end of file